const Router = require('koa-router');
const { Readable } = require('stream');

const router = new Router({ prefix: '/v1/sse' });

function generateAIResponse(userMessage) {
  // 简单的关键词匹配模拟AI回复
  const responses = {
    '你好': '你好！我是AI助手，有什么可以帮助你的吗？',
    '你是谁': '我是一个AI对话助手，能够通过SSE提供实时回复。',
    '天气': '今天天气不错，阳光明媚，适合外出活动。',
    '再见': '再见！祝你有美好的一天！'
  };

  // 如果没有匹配的关键词，返回默认回复
  return responses[userMessage] || '抱歉，我不太理解你的意思。请尝试其他问题。';
}

router.post('/chat', (ctx, next) => {
  console.log('接收到请求')
  // 设置SSE响应头
  ctx.set({
    'Content-Type': 'text/event-stream;charset=utf-8',
    'Cache-Control': 'no-cache',
    'Connection': 'keep-alive'
  })
  const { msg } = ctx.request.body
  // 模拟思考时间
  // await new Promise(resolve => setTimeout(resolve, 500))
  const aiResponse = generateAIResponse(msg || 你好)
  const stream = new Readable({
    read() {
      this.push('data: {"event":"message","content":"ahahahaha"}\n\n');
      this.push('data: [DONE]\n\n');
      this.push(null); // 结束流
    }
  });
 
  // 将流赋值给 ctx.body
  ctx.body = stream;
})

module.exports = router